perm filename ARMUS[SYS,HE]5 blob
sn#032865 filedate 1973-03-30 generic text, type T, neo UTF8
00100 START: MOVE P,[XWD -PDLL,UPDL]
00200 PUSHJ P,GAIN
00300 OUTSTR[ASCIZ/!
00400 /]
00500 WAIT: WRCV EXE
00600 HLRZ 5,EXE
00700 CAIE 5,MASTER
00800 JRST[ MOVEI 3,VERSN
00900 JRST FINISH]
01000 WAITED: MOVE 1,SEGJOB
01100 HRRZM 1,JOB
01200 HLRZM 1,SEG
01300 IFN REPORT+TRACK,<
01400 MOVE 1,[IOWD DBL-100,DATO]
01500 MOVEM 1,DATPT ;DATA POINTER
01600 MOVEM 1,DATIWD ;OUTPUT POINTER
01700 >
01800 SETZB 3,TRAJER
01900 MOVEI 0,0
02000 LDB 1,[POINT 3,EXE,35]
02100 CAIG 1,1
02200 JRST READ
02300 IFE ARMWORK,<
02400 MOVEI 3,NOTHER
02500 JRST FINISH
02600 >
02700 IFN REPORT+TRACK,< ;WRITE OUT DATA
02800 INIT 15,17
02900 SIXBIT /DSK/
03000 0
03100 JRST NDM
03200 MOVE 2,FILE
03300 MOVEM 2,DFILE
03400 MOVE 2,PPPN
03500 MOVEM 2,DPPPN
03600 IFN TRACK,<
03700 SKIPE WALK
03800 JRST[ LOOKUP 15,DFILE
03900 JRST NDMS
04000 MOVE 2,[IOWD DBL,DATO]
04100 MOVEM 2,DATPT
04200 INPUT 15,1
04300 JRST EXFN]
04400 >
04500 ENTER 15,DFILE
04600 JRST[NDMS:MOVEI 3,NODATA
04700 SUB 17,[XWD 1,1]
04800 JRST FINISH]
04900 >
05000 EXFN: CAIN 1,3
05100 JRST[ MOVE 4,EXE
05200 TRNN 4,HOLDF
05300 JRST [ SKIPE ARGS
05400 SOS JUMPBK
05500 JRST MOVON]
05600 SOS 1,STKPTR
05700 MOVEI 2,(1)
05800 LDB 3,[POINT 9,EXE,26]
05900 SUBI 1,(3)
06000 HRLI 1,ARGS
06100 BLT 1,(2)
06200 TRNE 4,RELOCF
06300 JRST[ MOVE 1,STKPTR
06400 SUBI 1,(3)
06500 SUB 1,CBUFS
06600 HRRM 1,@STKPTR
06700 JRST BPTR]
06800 BPTR: SOS STKPTR
06900 MOVON: SETOM FUNCT
07000 JRST SSW]
07100 CAIE 1,2
07200 JRST[ MOVEI 3,INVMES
07300 JRST FINISH]
07400 SETZM FUNCT
07500 HRREI 2,BUF-1001
07600 MOVEM 2,CBUFS
07700 SETOM BUF
07800 SETZM DOING ;TRAJECTORY SET UP FOR
00100 SKIPE BAND
00200 JRST[ MOVEI 1,BUF
00300 MOVEM 1,GOODIE
00400 MOVEI 1,1001
00500 MOVEM 1,GOODIE+1
00600 SETZM GOODIE+2
00700 MOVE 14,BAND
00800 UFBRD 14,GOODIE
00900 JRST RE
01000 SKIPN BUF+1000
01100 JRST[ SETZM BLOCKS
01200 MOVEI 1,BUF2
01300 MOVEM 1,NXTBUF
01400 SETZM @NXTBUF
01500 JRST ZDTH]
01600 MOVEI 1,BUF2
01700 MOVEM 1,GOODIE
01800 MOVEI 1,20
01900 MOVEM 1,GOODIE+2
02000 UFBRD 14,GOODIE
02100 JRST RE
02200 MOVEI 1,=74
02300 SKIPN BUF2+1000
02400 MOVEI 1,0
02500 MOVEM 1,BLOCKS
02600 MOVEI 1,40
02700 MOVEM 1,GOODIE+2
02800 MOVEI 1,BUF
02900 MOVEM 1,NXTBUF
03000 MOVNS BUF2
03100 JRST ZDTH]
00100 MOVE 1,FILE
00200 MOVEM 1,LFILE
00300 MOVE 1,PPPN
00400 MOVEM 1,LPPPN
00500 INIT 16,17
00600 SIXBIT/DSK/
00700 XWD 0,0
00800 JRST[NDM: MOVEI 3,NODEV
00900 JRST FINISH]
01000 LOOKUP 16,LFILE
01100 JRST[ MOVEI 3,NOFILE
01200 JRST FINISH]
01300 MOVS 1,LPPPN ;FILE LENGTH
01400 MOVN 1,1
01500 ASH 1,-11
01600 MOVEM 1,BLOCKS
01700 SOSGE BLOCKS
01800 JRST FINISH
01900 MOVE 10,[IOWD 1000,BUF]
02000 SETZ 11,
02100 IN 16,10
02200 JRST[ SOSGE BLOCKS
02300 JRST[ MOVEI 1,BUF2
02400 MOVEM 1,NXTBUF
02500 SETZM @NXTBUF
02600 JRST ZDTH]
02700 ADDI 10,1001
02800 IN 16,10
02900 JRST[ MOVEI 1,BUF
03000 MOVEM 1,NXTBUF
03100 MOVNS BUF2
03200 JRST ZDTH]
03300 JRST RE]
03400 JRST RE
00100 ZDTH:
00200 MOVE 1,[XWD DELTH,DELTH+1]
00300 SETZM DELTH
00400 BLT 1,DELTH+5
00500 MOVEI 1,=60
00600 MOVEM 1,STWT
00700 MOVNS BUF
00800 SSW:
00825 IFE USER+TRACK,<LOCK 1,>
00850 PUSHJ P,SPACE
00900 WWS:
01000 IFE REPORT+TRACK<
01100 IFE USER<
01200 MOVEI 1,1
01300 CALLI 1,31
01400 >
01500 >
01600 MOVE BITSAV
01700 TRNE DTST
01800 JRST BACK
01900 MOVE 1,@NXTBUF
02000 JUMPGE 1,.+2 ;MORE TRAJECTORY TO COME
02100 JRST[ SOSGE BLOCKS
02200 JRST[ SETZM @NXTBUF ;ALL DONE MAKK THIS AS LAST
02300 RELEASE 16,
02400 JRST WDO]
02500 SKIPE BAND
02600 JRST[ MOVE 1,NXTBUF
02700 MOVEM 1,GOODIE
02800 UFBRD 14,GOODIE
02900 JRST RBD
03000 MOVE 1,NXTBUF
03100 SKIPN 1000(1)
03200 SETZM BLOCKS
03300 MOVEI 1,20
03400 ADDM 1,GOODIE+2
03500 JRST ROK]
03600 MOVE 10,NXTBUF
03700 SOJ 10,
03800 HRLI 10,-1000
03900 IN 16,10
04000 JRST[ROK:MOVE 1,NXTBUF
04100 MOVNS (1)
04200 ADDI 1,1001
04300 CAILE 1,BUF2
04400 MOVEI 1,BUF
04500 MOVEM 1,NXTBUF
04600 JRST WDO]
04700 RBD: MOVE 1,NXTBUF ;READ ERROR
04800 SETZM @NXTBUF ;MARK AS LAST
04900 WFF: MOVE BITSAV ;AND WAIT FOR IT TO END
05000 TRNN DTST
05100 JRST WFF
05200 RE: MOVEI 3,REAERR
05300 JRST BACK]
05400 WDO:
05500 IFE REPORT+TRACK,<
05600 IFE USER,<JRST WWS>
05700 IFN USER,<JRST SSW>
05800 >
05900 IFN TRACK,<
06000 SKIPE WALK
06100 JRST SSW
06200 >
06300 IFN REPORT+TRACK,<
06400 HRRZ 1,DATIWD ;START TO WRITE
06500 CAIL 1,DATO+DBL-1
06600 JRST DOD
06700 HRRZ 2,DATPT ;LAST LOC FILLED
06800 WA: SUBI 2,(1)
06900 JUMPL 2,[MOVEI 2,DATO+DBL-1
07000 JRST WA]
07100 TRZ 2,177
07200 JUMPN 2,[ MOVN 1,2 ;MORE THAN 200 WORDS SO WRITE IT OUT
07300 HRLM 1,DATIWD ;NEG WORD COUNT
07400 OUT 15,DATIWD
07500 HRRZ 1,DATIWD
07600 ADDI 1,(2)
07700 HRRM 1,DATIWD
07800 JRST DOD]
07900 DOD:
08000 IFE USER,<JRST WWS>
08100 IFN USER,<JRST SSW>
08200 >
00100 BACK:
00125 IFE USER+TRACK,<UNLOCK 1,>
00150 SPCWAR 636367
00200 MOVEI 0,0
00300 SKIPE 3,TRAJER
00400 JRST[ IFE DEB,<
00500 IFN TRACK,<SKIPN WALK>
00600 TRO RONLY
00700 MOVEM BITSAV
00800 MOVEI 1,1
00900 CALLI 1,31
01000 DRSW: PUSHJ P,SPACE
01100 DRR: MOVE BITSAV
01200 TRNN DTST
01300 IFE USER,<JRST DRR>
01400 IFN USER,<JRST DRSW>
01500 SPCWAR 636367
01600 MOVEI 0,0
01700 PUSHJ P,SETSET
01800 >
01900 JRST NOERR]
02000 NOERR: IFE USER,<RELEASE 17,
02100 >
02200 IFN REPORT+TRACK,<
02300 PUSHJ P,CLODAT
02400 CLOSE 15,
02500 >
02600 SKIPN SEG
02700 JRST[ MOVEM 3,STATUS
02800 MOVE 2,[XWD TH,THETA]
02900 BLT 2,THETA+6
03000 MOVE 2,[XWD TORE,ARGS+10]
03100 BLT 2,ARGS+15
03200 MOVE 1,JOB
03300 MOVEM 1,REPLY
03400 SEND REPLY
03500 JRST WAIT
03600 JRST WAIT]
03700 MOVE 2,SEG
03800 CALLI 2,400016
03900 JRST WAIT
04000 HRRZ 4,NAME
04100 MOVE 2,(4)
04200 HLRZ 4,NAME
04300 MOVEM 2,(4)
04400 PUSHJ P,[SETNAM:MOVE 2,THETA
04500 MOVEI 4,6(2)
04600 HRLI 2,TH
04700 IFN TRACK,<SKIPN WALK>
04800 BLT 2,(4)
04900 MOVE 2,ETOR
05000 MOVEI 4,6(2)
05100 HRLI 2,TORE
05200 BLT 2,(4)
05300 PUSHJ P,SETFLT
05400 MOVEM 3,@STATUS
05500 MOVE 4,DOING
05600 MOVEM 4,@SEGMENT
05700 HRRZ 2,NAME
05800 SETZM (2)
05900 HRLZI 2,40
06000 MOVEM 2,IBIT
06100 INTUUO 4,JOB
06200 JUMP
06300 MOVEI 2,0
06310 CORE2 2,
06320 JFCL
06400 POPJ P,]
06500 JRST WAIT
00100 IFN REPORT+TRACK,<
00200 CLODAT:IFN TRACK,<
00300 SKIPE WALK
00400 POPJ P,
00500 >
00600 NWI: HRRZ 1,DATIWD
00700 HRRZ 2,DATPT
00800 SUBI 2,(1)
00900 JUMPL 2,[ HRRZI 2,DATO+DBL-1
01000 SUBI 2,(1)
01100 MOVN 2,2
01200 HRLM 2,DATIWD
01300 SKIPE 2
01400 OUT 15,DATIWD
01500 MOVEI 2,DATO-1
01600 HRRM 2,DATIWD
01700 JRST NWI]
01800 ADDI 2,200
01900 TRZ 2,177
02000 MOVN 1,2
02100 HRLM 1,DATIWD
02200 OUT 15,DATIWD
02300 POPJ P,
02400 >
02500
00100 READ: SETZM STWT
00200 SKIPG 1
00300 TRO POTREAD
00400 TRO RONLY
00500 RSW: PUSHJ P,SPACE
00600 RSWW: MOVE BITSAV
00700 TRNN DTST
00800 IFE USER,<JRST RSWW>
00900 IFN USER,<JRST RSW>
01000 MOVE 3,TRAJER
01100 PUSHJ P,SETSET
01200 JRST FINISH
01300
00100 SPACE: MOVEI 1,=180
00200 MOVEM 1,COUNT
00300 TRO TRIP
00400 LDB 1,[POINT 1,EXE,32]
00500 MOVEM 1,SOTCHS
00600 JUMPE 1,.+2
00700 TRO STCH
00800 IFN DEB,<SETZM ETIM>
00900 MOVEM BITSAV
01000 IFE USER,<
01100 IFN TRACK,<
01200 SKIPE WALK
01300 JRST[ MOVEM 17,USAVE+17
01400 MOVEM 17,USAVE+17
01500 MOVEI 17,USAVE
01600 BLT 17,USAVE+16
01700 JSR STRADR-1
01800 HRLZI 17,USAVE
01900 BLT 17,16
02000 MOVE 17,USAVE+17
02100 POPJ P,]
02200 >
02300 IFE USER,<
02400 GETAD: INIT 17,417
02500 SIXBIT /AD/
02600 XWD 0,0
02700 JRST GETAD
02800 >
02900
03000 SPCWAR 1,STRADR
03100 >
03200 IFN USER,<
03300 MOVEM 17,USAVE+17
03400 MOVEI 17,USAVE
03500 BLT 17,USAVE+16
03600 JSR STRADR-1
03700 HRLZI 17,USAVE
03800 BLT 17,16
03900 MOVE 17,USAVE+17
04000 >
04100 POPJ P,
04200
04300 UPDL: FINISH
04400 BLOCK PDLL
04500
04600 IFN USER+TRACK,<
04700 USAVE: BLOCK 20
04800 >
04900 IFN TRACK,<WALK:0>
05000
05100 IFN REPORT+TRACK,<
05200 DFILE: 0
05300 SIXBIT/TMP/
05400 0
05500 DPPPN: 0
05600 >
05700 LFILE: 0
05800 SIXBIT/TRJ/
05900 0
06000 LPPPN: 0
06100
06200 GOODIE: BLOCK 3
00100 FINISH: SPCWAR 636367
00200 IFE USER,<RELEASE 17,
00300 >
00400 SKIPE SEG
00500 JRST [ATSEG: MOVE 1,SEG
00600 CALLI 1,400016
00700 JRST WAIT
00800 PUSHJ P,SETNAM
00900 JRST WAIT]
01000 MOVEM 3,STATUS
01100 MOVE 1,[XWD TH,THETA]
01200 BLT 1,THETA+6
01300 MOVE 1,JOB
01400 MOVEM 1,REPLY
01500 SKIPN 1
01600 JRST WAITED
01700 SEND REPLY
01800 JRST WAIT
01900 JRST WAIT
02000
02100 REPLY: 0
02200 EXE
02300 SEG: 0
02400 SOTCH: 0
02500 JOB: 0
02600 IBIT: 000040000000
02700 TICKS: 0
00100 SETFLT: SKIPN NERVES
00200 POPJ P,
00300 MOVEI 6,1
00400 MOVE 4,NERVES
00500 STL: MOVE 5,OBS(6)
00600 MOVEM 5,(4)
00700 ADDI 4,=16
00800 SOJGE 6,STL
00900 POPJ P,
01000
01100 XLIST
01200 SUBTTL SPACEWAR CODE CONTROL LOU PAUL
01300 LIST